#ifndef _BATTERY_APP_H_
#define _BATTERY_APP_H_

#include <config.h>

#if ((_BOARD_TYPE_ != _V32_B_BOARD_) && ((_BOARD_TYPE_ & _DA01_BOARD_) != _DA01_BOARD_))
// 电压采集次数
#define BATTERY_VOLTAGE_DETECTION_SAMPLING                (20ul)
// 电池采样偏移
#define ADC_SAMPLING_CALCULATE_OFFSET                     (2ul)

// 等待电压稳定时间 - 20ms
#define WAIT_VOLTAGE_STABILISATION_TIME                   (20ul)

// 电压转换成剩余电量百分比
#define BATTERY_ELECTRICITY_CONVERSION(_VAL_)             (uint8_t)(((_VAL_ - BATTERT_MIXIMUM_VOLTAGE) * 100) / (BATTERY_MAXIMUM_VOLTAGE - BATTERT_MIXIMUM_VOLTAGE))

/**
 * @brief 标志位
 *
 */
typedef struct
{
  uint8_t PercentageOfElectricity; // 电压百分比
} BatteryStatusBit_t;
#endif

/**
 * @brief 获取电池电压百分比
 *
 * @return uint8_t - 电压百分比
 */
extern uint8_t BatteryGetVoltagePercentage(void);

/**
 * @brief 启动电池电压采样
 *
 */
extern void BatteryStartGetPercentageOfElectricity(void);

/**
 * @brief 相关功能初始化
 *
 */
extern void BatteryConfiguration(void);

#endif
